In [1]:
import plotly.offline as pyo

from plotly.graph_objs import *

import chart_studio.plotly as py

import pandas as pd
from pandas import DataFrame
In [2]:
import plotly.figure_factory as ff
In [3]:
pyo.offline.init_notebook_mode()
In [4]:
table = py.get_figure("rmuir", 313)
pyo.iplot(table)
In [5]:
for ann in table['layout']['annotations']:
    if '<b>' in ann['text']:
        print('HEADER/INDEX: {}'.format(ann['text']))
    else:
        print('ROW DATA: {}'.format(ann['text']))
HEADER/INDEX: <b>Country</b>
HEADER/INDEX: <b> </b>
HEADER/INDEX: <b>Population (2011)</b>
HEADER/INDEX: <b>  </b>
HEADER/INDEX: <b>Area</b>
HEADER/INDEX: <b>   </b>
HEADER/INDEX: <b>England</b>
ROW DATA: 
ROW DATA: 53012456
ROW DATA: 
ROW DATA: 130,395 km²
ROW DATA: 
HEADER/INDEX: <b>Scotland</b>
ROW DATA: 
ROW DATA: 5295000
ROW DATA: 
ROW DATA: 78,772 km²
ROW DATA: 
HEADER/INDEX: <b>Wales</b>
ROW DATA: 
ROW DATA: 3063456
ROW DATA: 
ROW DATA: 20,779 km²
ROW DATA: 
HEADER/INDEX: <b>Northern Ireland</b>
ROW DATA: 
ROW DATA: 1810863
ROW DATA: 
ROW DATA: 13,843 km²
ROW DATA: 
In [6]:
for ann in table['layout']['annotations']:
    if '<b>' in ann['text']:
        ann['font']['color'] = '#f1f1f1'
    else:
        ann['font']['color'] = '#333'
pyo.iplot(table)
In [7]:
for ann in table['layout']['annotations']:
    try:
        print(int(ann['text']))
    except: 
        ValueError
53012456
5295000
3063456
1810863
In [8]:
for ann in table['layout']['annotations']:
    try:
        ann['text'] = "{:,}".format(int(ann['text']))
    except: 
        ValueError
In [9]:
pyo.iplot(table)
In [10]:
def hasNumbers(inputString):
    return any(char.isdigit() for char in inputString)
In [11]:
for ann in table['layout']['annotations']:
    if hasNumbers(ann['text']) or 'Area' in ann['text']:
        print(ann['text'])
<b>Population (2011)</b>
<b>Area</b>
53,012,456
130,395 km²
5,295,000
78,772 km²
3,063,456
20,779 km²
1,810,863
13,843 km²
In [12]:
for ann in table['layout']['annotations']:
    if hasNumbers(ann['text']) or 'Area' in ann['text']:
        ann['xanchor'] = 'right'
        
pyo.iplot(table)
In [13]:
for ann in table['layout']['annotations']:
    if hasNumbers(ann['text']) or 'Area' in ann['text']:
        ann['x'] = ann['x'] + 1
pyo.iplot(table)
In [14]:
for ann in table['layout']['annotations']:
    if hasNumbers(ann['text']) or 'Area' in ann['text']:
        ann['x'] = ann['x'] - 0.1
pyo.iplot(table)
In [ ]: